#ifndef _QUEUE_H_
#include "main.h"

/* 此处插入Item类型定义 */
typedef struct
{
	uint8_t *Buf;
	uint16_t Length;
}Item_TypeDef;

#define MAX_QUEUE	10

typedef struct node
{
	Item_TypeDef Item;
	struct node *Next;
}Node_TypeDef;

typedef struct queue
{
	Node_TypeDef *Front;		/* 指向队列首的指针 */
	Node_TypeDef *Rear;			/* 指向队列尾的指针 */
	uint16_t ItemCnt;			/* 队列中项目的个数 */
}Queue_TypeDef;

void QueueInit(Queue_TypeDef *queue);
int8_t QueueIsFull(const Queue_TypeDef *queue);
int8_t QueueIsEmpty(const Queue_TypeDef *queue);
uint16_t QueueItemCount(const Queue_TypeDef *queue);
int8_t EnQueue(Item_TypeDef item, Queue_TypeDef *queue);
int8_t DeQueue(Item_TypeDef *item, Queue_TypeDef *queue);
void EmptyTheQueue(Queue_TypeDef *queue);
#endif

